#pragma once
#define ZY_DRV_DISP_KEY_MCU582

// define GPIOs(GPIOB series) for display and ke scan 
#define IO_KEY_0        GPIO_Pin_11
#define IO_KEY_1        GPIO_Pin_10
#define IO_KEY_2        GPIO_Pin_12
#define IO_KEY_3        GPIO_Pin_13
#define IO_DISP_SEG_0   GPIO_Pin_3
#define IO_DISP_SEG_1   GPIO_Pin_2
#define IO_DISP_SEG_2   GPIO_Pin_1
#define IO_DISP_SEG_3   GPIO_Pin_0
#define IO_DISP_SEG_4   GPIO_Pin_21
#define IO_DISP_SEG_5   GPIO_Pin_20
#define IO_DISP_SEG_6   GPIO_Pin_19
#define IO_DISP_SEG_7   GPIO_Pin_18
#define IO_DISP_DIP_3	GPIO_Pin_16
#define IO_DISP_DIP_2	GPIO_Pin_17
#define IO_DISP_DIP_1	GPIO_Pin_8
#define IO_DISP_DIP_0	GPIO_Pin_9

// 定义显示内存大小, 5位7段
#define DISP_MEMORY_SIZE			4

// display led digital number -- 基本不会变化，具体有没有某项，依赖led_icon_code_table决定
typedef enum {
	// icon led
	disp_item_comp = 0,
	disp_item_hot,
	disp_item_defrost,
	disp_item_lp,
	disp_item_lock,
	disp_item_alarm,
	disp_item_fan,
	disp_item_door,
	disp_item_wifi,
	disp_item_4g,
	disp_item_battery,
	disp_item_bt,
	disp_item_drip,
	disp_item_pow, 		// 电源指示灯
	disp_item_dot,
	disp_item_minus,
	LED_ICON_NUM,
	// 7seg digital led
	disp_item_d1 = LED_ICON_NUM,	// 百
	disp_item_d2,					// 十
	disp_item_d3,					// 个
	LED_ITEM_NUM,
	LED_DIGITAL_NUM = LED_ITEM_NUM - LED_ICON_NUM,
	disp_item_d_start = 0,
}disp_item_t;

// key description
typedef enum {
	ZQ_KEY_SET = 0,
	ZQ_KEY_PLUS,
	ZQ_KEY_MINUS,
	ZQ_KEY_FUNC,
	ZQ_KEY_NUM,
	ZQ_KEY_INVALID = 0x7f, // 无效值
	ZQ_KEY_TOGGLE = ZQ_KEY_INVALID,
	ZQ_KEY_LIGHT = ZQ_KEY_INVALID,
	ZQ_KEY_SWITCH = ZQ_KEY_INVALID,
} ZQ_KEY_ENUM;

